package cn.exrick.xboot.modules.transport.param;

import com.github.binarywang.wxpay.bean.result.enums.TradeTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

/**
 * <p>
 * 新增公用交易记录表
 * </p>
 *
 * @author guojia
 * @since 2022-09-19
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ToString(callSuper = true)
@Builder
@ApiModel(value = "SaveDealRecordParam", description = "新增交易记录参数")
public class SaveDealRecordParam {

    @ApiModelProperty(value = "交易类型 1 收入；2 支出")
    @NotNull(message = "交易类型不能为空")
    private Integer dealType;

    @ApiModelProperty(value = "交易金额")
    @NotNull(message = "交易金额不能为空")
    private Integer dealAmount;

    @ApiModelProperty(hidden = true,value = "交易时间")
    private LocalDateTime dealTime;

    @ApiModelProperty(hidden = true,value = "交易状态 0 待处理；1 已完成； 2 已取消")
    private Integer dealState;


    @ApiModelProperty(value = "单据类型 1 运单 ；2 仓点押金; ")
    @NotNull(message = "单据类型不能为空")
    private Integer orderType;

    @ApiModelProperty(value = "单据id")
    @NotNull(message = "单据id不能为空")
    private Long orderId;

    @ApiModelProperty(value = "支付类型 1 微信；2 支付宝；3 银行转账；4 分账系统（此处待定）")
    @NotNull(message = "支付类型不能为空")
    private Integer paymentType;

    @ApiModelProperty(value = "微信支付类型 APP、JSAPI 或 小程序、NATIVE、H5")
    private TradeTypeEnum wxTradeType;

    @ApiModelProperty(value = "微信支付调用这appcode， ma 小程序  mp 公众号  allInOne  一体机")
    private String wxAppTypeCode;

    @ApiModelProperty(hidden = true,value = "对接支付方流水号")
    private String paymentNumber;

    @ApiModelProperty(hidden = true,value = "删除标志,0：未删除  1：已删除")
    private Integer isDelete;

    @ApiModelProperty(hidden = true,value = "交易描述")
    private String dealDescription;

    @ApiModelProperty(hidden = true,value = "关联id，退款流水时绑定付款流水")
    private Long relevanceId;


}
